'''判断用户输入的3个数字是否能构成三角形的三条边'''
def fnc():
    a = float(input('请输入三角形第一条边边长:'))
    b = float(input('请输入三角形第二条边边长:'))
    c = float(input('请输入三角形第三条边边长:'))
    if a<b+c and b<a+c and c<a+b:
        print(f'三边长{a},{b},{c}可以构成三角形')
    else:
        print('不能构成三角形')
fnc()

def is_triangle():
    def get_valid_side(name):
        """获取有效的正数边长"""
        while True:
            try:
                value = float(input(f'请输入三角形第{name}条边边长：'))
                if value <= 0:
                    print("错误：边长必须是正数")
                else:
                    return value  # return可以结束函数的执行
            except ValueError:
                print("错误：请输入有效的数字")

    # 获取三条边
    a = get_valid_side("一")
    b = get_valid_side("二")
    c = get_valid_side("三")

    # 判断三角形条件
    if (a + b > c) and (a + c > b) and (b + c > a):
        print(f'三边长 {a}, {b}, {c} 可以构成三角形')
        # 附加判断三角形类型
        if a == b == c:
            print("※ 这是等边三角形")
        elif a == b or b == c or a == c:
            print("※ 这是等腰三角形")
        elif a**2 + b**2 == c**2 or a**2 + c**2 == b**2 or b**2 + c**2 == a**2:
            print("※ 这是直角三角形")
    else:
        print("无法构成三角形，因为不满足两边之和大于第三边的条件")

is_triangle()